package file_text_multiple;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Map;
import java.util.TreeMap;

public class TaskMap {
	private Map<String, Integer> map;
	private ArrayList<String> orderKeys;
	private int index;
	
	public TaskMap() {
		map = new TreeMap<String, Integer>(Collections.reverseOrder());
	}
	
	public void put(String key, Integer value){
		map.put(key, value);
	}

	public void getOrderMap() {
		orderKeys = new ArrayList<String>(map.keySet());
		index = 0;
	}
	
	public boolean hasNext(){
		return index < orderKeys.size();
	}
	
	public Object[] getNext() {
		Object[] keyValue = new Object[2];
		keyValue[0] = orderKeys.get(index);
		keyValue[1] = map.get(orderKeys.get(index));
		index++;
		return keyValue;
	}	
	
//	public LinkedHashMap sortHashMapByValues(Map passedMap) {
//		List mapKeys = new ArrayList(passedMap.keySet());
//		List mapValues = new ArrayList(passedMap.values());
//		Collections.sort(mapValues, Collections.reverseOrder());
//		Collections.sort(mapKeys, Collections.reverseOrder());
//
//		LinkedHashMap sortedMap = new LinkedHashMap();
//
//		Iterator valueIt = mapValues.iterator();
//		while (valueIt.hasNext()) {
//			Object val = valueIt.next();
//			Iterator keyIt = mapKeys.iterator();
//
//			while (keyIt.hasNext()) {
//				Object key = keyIt.next();
//				String comp1 = passedMap.get(key).toString();
//				String comp2 = val.toString();
//
//				if (comp1.equals(comp2)) {
//					passedMap.remove(key);
//					mapKeys.remove(key);
//					sortedMap.put((String) key, (Integer) val);
//					break;
//				}
//
//			}
//
//		}
//		return sortedMap;
//	}
}
